home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Atari Compendium
/
The Atari Compendium (Toad Computers) (1994).iso
/
files
/
umich
/
telecomm
/
sticpsrc.lzh
/
DOC
/
NRMAN.ARC
/
NRMAN.TXT
Wrap
Text File
|
1989-01-09
|
18KB
|
424 lines
NET/ROM support in the KA9Q NET Package
Dan Frank, W9NK
INTRODUCTION
The NET/ROM support for the KA9Q package serves three purposes:
1) Existing NET/ROM networks may be used to send IP traffic.
2) NET may be used as a NET/ROM packet switch.
3) NET may be used to communicate with NET/ROM nodes, and its
mailbox facility can accept connects over the NET/ROM network.
SETTING UP THE NET/ROM INTERFACE
No physical interface is completely dedicated to net/rom, which is as
it should be. You attach all your AX.25 interfaces, of whatever sort.
Then you attach the net/rom pseudo-interface ("attach netrom"). Then
you identify to the net/rom software those interfaces you want to allow
it to use, with the "netrom interface" command. The format of this
command is:
netrom interface ax0 #ipnode 192
The first argument is the name of the previously attached interface you
want to use. The second argument is the alias of your node, to be used in
your routing broadcasts. The alias is never used for anything else (as
you will see!). The last number is the net/rom quality figure. This is
used in computing the route qualities; it represents the contribution of
this interface to the overall computation. For a 1200 baud half-duplex
connection, 192 is the right number.
You need a netrom interface command for every interface you're going
to use with net/rom.
TRACING ON THE NET/ROM INTERFACE
If you want to trace your NET/ROM datagrams, don't try turning
on trace mode for the "netrom" interface. Nothing will break, but
nothing will happen. You should trace the individual AX.25 interfaces
instead.
ROUTING BROADCASTS
Once you have set up your interfaces, you need to set some timers.
There are two: the nodes broadcast interval timer, and the obsolescence
timer. These are set in seconds, like the smtp timer. You should usually
set them to an hour. You can set them to something different, if you want.
If your local net/rom nodes broadcast every hour, but you want to do so
every ten minutes, you can say:
netrom nodetimer 600
netrom obsotimer 3600
Every time the obsotimer kicks, the obsolescence counts for all non-permanent
entries are decremented by one. When the count for an entry falls below
five, it is no longer broadcast. When it falls to 0, it is removed. The
count is initialized at 6. These will eventually be settable parameters;
you can adjust them now by changing the initializers for the variables
in the source file.
When you first come on the air, you can send out nodes broadcasts to
tell the local nodes that you are available. Use the command:
netrom bcnodes ax0
where ax0 is the interface on which you want to send the broadcast. Do
this for every interface on which you want to do this.
By default, the NET/ROM code does not broadcast the contents of your
routing table. This is as it should be, since usually we just want to
be the endpoints of communications rather than relaying NET/ROM traffic.
If you want to be a switch station, include the command:
netrom verbose yes
in your autoexec.
Sometimes you can hear broadcasts from nodes that can't hear you. If
your routing table gets filled with these unusable routes, your node will
grind to a halt. The solution to this is node broadcast filtering, via
the netrom nodefilter command. There is a filter list, which contains
a list of callsigns and interfaces. Then there is a filter mode, which
indicates what to do with the list.
If the filter mode is "none", no filtering is done. If it is "accept",
then only broadcasts from the indicated stations on the indicated
interfaces are accepted. If it is "reject", then all broadcasts
except those from the listed stations on the listed interfaces are
accepted.
Because the net/rom code cannot at this time recognize unusable
routes and try alternates, I strongly recommend use of the filter
command to restrict broadcast acceptance to those nodes which you
know you can reach.
THE NET/ROM ROUTING TABLE
The next net/rom commands are those used for maintaining
the routing table. They fall under the "netrom route" subcommand.
"netrom add" adds a permanent entry to the routing table. Its format
is:
netrom route add #foo w9foo ax0 192 w9rly
This command adds an entry for w9foo, whose alias is #foo, route
quality 192, via w9rly on interface ax0. Let's talk about what this
means. w9foo is the *destination* node, the one to whom you want
the packets routed by the net/rom network. w9rly is your *neighbor*,
the net/rom node to which you pass the packet to be forwarded. Since
w9rly may appear on more than one interface (the callsign may be used
by more than one net/rom node on different bands), we specify that
we are to use ax0 to send the packet.
With net/rom, like IP, we don't know exactly what route a packet
will take to its destination. We only know the name of a neighbor
which has indicated a willingness to forward that packet (of course,
the neighbor may be the destination itself, but that's unlikely in
our application). Net/rom sends the packet to the neighbor, with a
network header specifying our callsign and that of the ultimate
destination (in this case w9foo).
We can use the netrom route add command to establish a digipeater
path to the neighbor. For example:
netrom route add #foo w9foo ax0 192 w9rly wd9igi
This will cause us to use wd9igi as a digipeater in establishing our
connection to the net/rom node w9rly.
To drop the route to w9foo, you would type
netrom route drop w9foo w9rly ax0
To see the contents of your routing table, you may type
netrom route
and to see the routing entries for an individual station you can type
netrom route info <callsign>
You may not use an alias as an argument to the netrom route info command.
I can not stress enough that "route add" and "netrom route add" are two
different commands, with different purposes. In general, you only need a
"netrom route add" if you need to add a route to a net/rom node via a
digipeater path. If you find yourself using this command, ask yourself,
"Why am I doing this?" Many people do not understand that net/rom does
automatic routing (well, sort of :-)).
THE IMPORTANCE OF THE ROUTING TABLE
The NET/ROM routing table is analogous to the IP routing table: if
there is nothing in it, your NET/ROM traffic will not go out. You must
either manually enter a list of routes (perhaps via your autoexec.net)
or wait to receive routing broadcasts from your neighbors before your
NET/ROM traffic will leave your station.
If you go to send packets via NET/ROM and nothing happens, even if
you have trace mode on, make sure that the destination node is in your
NET/ROM routing table. If sending IP traffic, double check the ARP table
for an appropriate NET/ROM ARP entry for the destination node (see below
for more information on the use of the ARP table). The ARP table is not
used for NET/ROM transport routing.
INTERFACING WITH NET/ROMS USING YOUR SERIAL PORT
What if you have a net/rom node or nodes, and you'd like to attach
them to your computer via their serial interfaces, and use net as a
packet switch? It's very easy: you have to attach those interfaces,
using the "attach asy" command, but specifying type "nrs" instead of
"slip" or "kiss". "nrs" is the net/rom serial framing protocol, which
is like KISS, but uses different framing characters and has an 8-bit
checksum.
When you attach an nrs interface, it can be used for passing IP
datagrams or AX.25 frames over serial lines or modems. To use it
for net/rom, you have to identify it to the netrom code just like
any other interface, with the "netrom interface" command.
THE TIME TO LIVE INITIALIZER
The "netrom ttl" command allows setting of the time-to-live
initializer for NET/ROM datagrams. I recommend a value of 16
for most networks. Use more if you expect to go more than 16 hops.
The default is 64.